import apiClient from './apiClient'

/**
 * 权限管理服务
 */
export const permissionService = {
  /**
   * 获取角色列表
   * @param {Object} params 查询参数
   */
  getRoleList(params) {
    return apiClient.get('/admin/roles', { params })
  },

  /**
   * 获取角色详情
   * @param {number} roleId 角色ID
   */
  getRoleDetail(roleId) {
    return apiClient.get(`/admin/roles/${roleId}`)
  },

  /**
   * 创建角色
   * @param {Object} roleData 角色数据
   */
  createRole(roleData) {
    return apiClient.post('/admin/roles', roleData)
  },

  /**
   * 更新角色
   * @param {number} roleId 角色ID
   * @param {Object} roleData 角色数据
   */
  updateRole(roleId, roleData) {
    return apiClient.put(`/admin/roles/${roleId}`, roleData)
  },

  /**
   * 删除角色
   * @param {number} roleId 角色ID
   */
  deleteRole(roleId) {
    return apiClient.delete(`/admin/roles/${roleId}`)
  },

  /**
   * 获取权限列表
   */
  getPermissionList() {
    return apiClient.get('/admin/permissions')
  },

  /**
   * 更新角色权限
   * @param {number} roleId 角色ID
   * @param {Array} permissions 权限列表
   */
  updateRolePermissions(roleId, permissions) {
    return apiClient.put(`/admin/roles/${roleId}/permissions`, { permissions })
  },

  /**
   * 获取用户角色
   * @param {number} userId 用户ID
   */
  getUserRoles(userId) {
    return apiClient.get(`/admin/users/${userId}/roles`)
  },

  /**
   * 分配用户角色
   * @param {number} userId 用户ID
   * @param {Array} roleIds 角色ID列表
   */
  assignUserRoles(userId, roleIds) {
    return apiClient.post(`/admin/users/${userId}/roles`, { roleIds })
  }
}